This invention relates to a method and apparatus for tracking assets in a communications network.
Asset Tracking Systems (ATS) are typically central components of inventory control and system management. Within a networked computer environment, ATS utilize client/server technology build on top of standard network protocols to query individual networked computers for a list of their assets and components which is then maintained in some inventory or asset database. However, the physical location of a computer system can not be queried dynamically through standard protocols and hence current ATS rely on people manually keeping the asset location data base current. Nevertheless, dynamically tracking the approximate physical locations of computers (particularly workstations) in an enterprise is a highly desirable feature. What is missing in today""s tracking systems is the automatic identification of the physical location of the computer.
In a broader context the determination of the physical location of a device within its environment is primarily based on attaching sensors to devices and using radio frequency identification (RFI) as described in U.S. Pat. Nos. 5280159, 5785181, 5611051, 5608193, which are hereby incorporated by reference. Best known is the EAZY Pass System used at Toll Booths around the country. These methods are inadequate as they require that the sensor pass in close proximity of a detection device which initiates the radio frequency identification and receives the response.
In current local area networks (LAN) systems network attached devices, such as computer and printers, identify themselves to the other network attached devices through various standardized protocols. As an example of the various identification processes in today""s network, we will describe an Internet Protocol (IP) based system. Here, a computer connected to a subnet finds the address of any other computer in the same subnet by following standardized address resolution and identification protocols.
Since this invention utilizes standard network protocols, it is imperative for the understanding of this invention to provide a review of the state of the art in networks and device identification as well as their limitation with respect to identifying the physical location of network attached devices. To that extent we incorporate the following literature on standard network protocols [1],[2] and [3] by reference.
Shown in FIG. 1 is a typical LAN. A LAN is generally constructed of several subnetworks (100), each comprised of a set of devices, such as computers (101), printers (102), file servers (103) and splitters (104). The subnet (100) is typically connected to the rest of the network via gateway (105) and routers (106). Network protocols follow a layered approach, thus defining a protocol stack, shown in FIG. 2. The bottom layer, or physical layer, is comprised of the physical network medium, and specifies the electrical characteristics, the connectors and the hardware carrying data. The data link layer utilizes this medium to define units of data, called frame or packet, consisting of frame header, frame data and optional frame trailer. Popular data link protocols are Ethernet, token ring, FDDI, ISDN, ATM, SLIP to mention a few. Layered on top of the data link are standard protocols such as IP, DecNET and NetBEUI, amongst others. The higher the protocol layer the more abstract are the services. For instance the lower layers often implement an unreliable communication medium, while higher level layers provide a reliable communication medium on top of unreliable mediums. The data-load of lower level packets typically embodies the entire packet of the next higher layer. For instance the Ethernet packet or frame, shown in FIG. 3, embodies as its data-load the IP packet, commonly referred to as the IP datagram. The IP packet format is shown in FIG. 4. The IP datagram""s data section embodies higher level packets defined for protocols such as UDP or TCPIP.
Referring to FIG. 1, within a network, network attached devices are referred to as hosts (101,102,103,105). Dependent on the layer of the protocol stack, hosts are addressed by different names or protocol addresses, short addresses. For instance, in a particular name domain a host might be identified by a more descriptive host name address such as xe2x80x9cwebserver.watson.ibm.comxe2x80x9d. In the IP domain this host might be known by its IP address (e.g. 9.2.220.54). In the link layer the host might be identified by the 48-bit physical address of its Ethernet adapter. The physical address is often also referred to as the MAC (machine access control) number and is a globally unique number that is encoded into the network adapter at manufacturing time. In order to generate the packets as shown in FIG. 2, address translation has to take place in order to move from one layer of the protocol stack to a lower layer. For instance, domain name servers translate between host names and IP addresses. Note that a particular host can hold multiple addresses at a particular level. For instance, a host might have several communication adapters and therefore multiple physical addresses.
Let X and Y be two hosts attached to a subnet and further let IP(X) and IP(Y) be their respected IP address for a given physical protocol (e.g. Ethernet). If X wants to communicate with Y, then for the purpose of communicating over a particular physical layer, the IP address IP(Y) must be first translated into the physical address PA(Y) of Y for a particular physical protocol. For this purpose an address resolution protocol (ARP) module is consulted that caches translations between IP addresses and physical addresses. If such a translation exists, then IP(X) can send to IP(Y) by copying the PA(X) into the source and PA(Y) into the destination of the packet frame. If no such translation is available, the physical address PA(Y) must be discovered first. For this purpose the address resolution protocol (ARP) is utilized. Here, first a particular frame is broadcast on a subnet that contains the ARP request command token, the PA(X) as the source of the packet, a wild card target physical address PA(*), the higher layer source and destination addresses, which in the case of IP are the source IP address IP(X) and the target IP address IP(Y). Note, that the ARP is shared by all physical link protocols, such as IP, NetBEUI, etc. Since the ARP packet is broadcast with a wild card target PA(*), every host attached to the subnetwork, picks up the packet and pushes it up its communications stack. If the target IP(Y) address matches any computer on the subnet, this computer will respond with an ARP reply to the interrogator by means of exchanging the IP target and source addresses in the request packet, setting the physical source address to PA(Y) and the physical target address to PA(X). X will pick up this ARP reply packet, and store the translation  less than IP(Y),PA(Y) greater than  contained therein in its ARP module. The translation is typically discarded after some time to ensure that translations are somewhat up to date. For instance, if a host disconnects from the network, packets addressed to this host will simply be discarded and higher level protocols will be notified of the communication error. A variant of the ARP called reverse ARP (RARP) helps a node find out its own higher layer address. A host can broadcast a query requesting its higher layer address and stating its physical address. A server that is configured with a physical to higher layer address table responds to such queries by supplying the assigned higher level address, for instance, the IP address in case of IP.
The IP protocol defines a particular set of control messages, known as the Internet Control Message Protocol, (ICMN). ICMP""s functions are an essential part of IP. All hosts and routers must be able to generate ICMN messages as well as process the ICMN messages that they receive. For instance, ICMP provides the means to implement higher level protocols to examine the state or characteristics of the other hosts and routers in the network or to configure the network (e.g. router function). Of particular interest to this invention are the ICMP query functions which are utilized to implement the popular IP xe2x80x9cpingxe2x80x9d service. A xe2x80x9cping  less than T greater than xe2x80x9d establishes whether a host  less than T greater than , as identified by its IP address, is connected to and properly configured to communicate via the network with other hosts and if so, the ping measures the transfer time of a packet between the issuing host and host  less than T greater than . As a side-effect of issuing a xe2x80x9cping  less than T greater than xe2x80x9d request, address resolution will take place on those levels of the communication stack, for which no proper translation to the next lower level exists. For instance, if the physical address of the target host is unknown, the ARP request is automatically issued to discover the PA(T). The service then continues to issue an ICMP ECHO packet to T. Once received by T, T must respond with an ICMP ECHO_REPLY message. The format of the request and reply is shown in FIG. 5. ICMP messages are carried in the IP datagrams, which have ordinary IP headers, wherein the type of service is set to xe2x80x9c0xe2x80x9d to indicate that there is no special priority to these packets and the protocol is set to xe2x80x9c1xe2x80x9d to indicate that this is an ICMP message. Within the dataload of the ECHO request, the sender can send any data, and the responder should send back the same data it received to allow the sender to examine potential transmission problems.
Another network protocol of relevance to this invention is the BOOTP protocol. The bootp protocol itself is layered on top of standard UDP (User Datagram Protocol), which enables applications to send individual message to one another without service guarantees. UDP utilizes source and destination ports to which identify the sending and receiving application. These are identified in the UDP header of a message, as shown in FIG. 6. UDP reserves several ports for system specific management, of which BOOTP occupies two, one for the server (port xe2x80x9c67xe2x80x9d) and one for the client (port xe2x80x9c68xe2x80x9d). UDP is layered on top of IP with the IP protocol set to xe2x80x9c17xe2x80x9d. The UDP protocol is described in more detail in [1]. The BOOTP protocol allows a client computer system to boot from the network, more particularly from a boot server. The packet format used within the BOOTP is shown in FIG. 7. The client issues a BOOTP request. If it does not know the server""s IP address, then it broadcasts the message. If it does not know its own IP address, then it sets it to 0.0.0.0 in the packet. The server that listens to the UDP port 67 on the target host receives the datagram, looks up the clients configuration, assigns an IP address and builds a BOOTP reply packet that includes further information such as the boot file from where to the boot image is retrieved. The client receives the BOOTP reply packet, sets its own IP address and can initiate the bootstrap protocol. This process is further described in [3].
Having thus described the standard identification protocol, namely ARP for address resolution, the ICMP ECHO and ECHO_REPLY exchange and the BOOTP protocol, and having further examined the standard protocol packet formats, it should be apparent that there is currently no integrated method in these protocols, that allow the determination of the physical location of hosts in network attached systems.
This invention provides a system that enables automatic tracking of network attached devices. The invention is based on existing LAN protocols, but adds hardware to the network outlet in each room. To that extent, our invention differs from RFI based systems as hardware is added to the network outlet and not to the device itself. Further, as is described in the preferred embodiment, no new network protocols have to be created.
Though many protocols do concurrently coexist on all levels of the protocol stack (e.g. TCP vs. UDP or IP vs. DecNET), this invention is illustrated using the Ethernet, IP, and UDP, because these are the most widely used standard protocols with respect to machine configuration and setup. To those skilled in the art, it is obvious that the apparatus, methods and algorithms are not limited to Ethernet, IP and UDP, but are equally applicable to other existing and emerging network protocols and protocol stacks.
The apparatus of this invention comprises a physical device, referred to as a Host Identification Device (HID), that is connected to the network outlet known as the network attachment point (NAP), e.g. a RJ45 connector plate in the wall, or a splitter box. The HID provides the same connection to the equipment as does the NAP and forwards all requests between the network and the attached hosts. To this extent, the HID functions like a pass through device in the system. However, when an ICMP ECHO_REPLY is observed by the HID on the physical link attached to it, it will store the responders physical address PA and corresponding IP address. For a number of software purposes, the HID is yet another network adapter attached to the network. As such it has its own unique physical address and responds to all ARP and ECHO requests itself. The HID responds to an ECHO request by transferring all the stored PA/IP address association information. Hence, to a central tracking system, this apparatus provides the physical and IP addresses of hosts attached to an HID. The attachment or connection to the HID can be any physical fink, wire connection, or wireless connection through either radio or optical communication systems. Since, for all practical purposes, the HID is integrated into the NAP, the physical address of the HID can be registered into a database together with its physical location at the time of the NAP installation. This database has to be updated if and only if the NAP is physically relocated and not if any computer equipment that is connected to the HID is relocated. As described above, this apparatus and method describes a mechanism to dynamically and uniquely identify the physical location of network attached equipment.